HELLO!
HIGASHIYUKI®.COM
0   /   100

WordPressのショートコードで投稿記事の一覧を指定した数だけ表示させる方法

Start Reading

ワードプレスでショートコードを使って「投稿一覧」の記事を表示する方法

WordPress(ワードプレス)管理画面内のブロックエディタやウィジェットなど、PHPを直書き出来ない場面で重宝する「ショートコード」。

今回は「投稿一覧」の記事全体から、「投稿日」「タイトル」のみ取得して、投稿日時の新しい順番に任意の数だけ表示する、もっともシンプルでオーソドックスな方法についてご紹介します。

トップページにさりげなく新着のお知らせを数件表示する場合や、ブログのサイドバーウィジェットと相性が良いと思います。

functions.phpにショートコードを呼び出す為のプログラム(関数)を書く

WordPress(ワードプレス)のfunctions.phpファイルに下のプログラムを記述します。コピペOK!
この関数をfunctions.phpに定義することで、このショートコードが使用できるようになります。

HTMLタグは<ul><li>で出力するようにしていますが、表示する場所など状況に応じて最適なマークアップとなるように、出力するタグを変えてください。

/*ショートコードを使って投稿一覧の記事を任意の数だけ表示 */
function sample_post_list() { // 変数を定義
global $post;
$args = array(
'posts_per_page' => 5, // 表示件数を半角数字で指定します(この場合は5件表示されます)
'post_type'      => 'post',
'post_status'    => 'publish'
);
$posts_array = get_posts($args);
$html = '<ul>'; // HTMLタグは状況に応じて変えてください。
foreach($posts_array as $post): // loop開始
setup_postdata($post);
$html .= '<li><a href="'.get_permalink().'">'; // 記事URLを取得
$html .= '<time datetime="'.get_the_date( DATE_W3C ).'">'.get_the_date().'</time>'; // 投稿日を表示
$html .= '<p>'.get_the_title().'</p>'; // タイトルを表示
$html .= '</a></li>';
endforeach; // loop終了
$html.='</ul>';
wp_reset_postdata();
return $html;
}
add_shortcode('my_post_list', 'sample_post_list');  // ('ショートコード名', '変数名')

上のコードは、シンプルに「投稿日」「タイトル」のみ取得して表示するサンプルコードです。
トップページにさりげなく新着のお知らせを数件表示する場合や、ブログのサイドバーウィジェットと相性が良いと思います。

アイキャッチ画像を表示する場合は?

下のサンプルソースコードを「//投稿日を表示(Line:14)」の上などに入れて表示させてください。

/*アイキャッチ画像を表示 */
$html .= '<img src="'.get_the_post_thumbnail_url().'" alt="'.get_the_title().'">';

定義したショートコードをWordPress管理画面内で使う

WordPress(ワードプレス)のテキストエディタやウィジェットなど、ショートコードを読み出しできる編集パネルに下のプログラムを記述します。

[my_post_list]

これでショートコードを貼り付けた箇所に投稿一覧を表示させることができます。

あとは、CSSでデザインやレイアウトなど自由に作り込んでいってくださいね。